home *** CD-ROM | disk | FTP | other *** search
- Hinweise zu Little Net
-
- Little Net arbeitet mit der MIDI-Schnittstelle des ATARI ST. Da es
- sich dabei um eine Stromschnittstelle (etwa 5mA) mit galvanischer
- Trennung über Optokoppler handelt, sind auch größere Entfernungen
- problemlos zu überwinden. Dreißig bis vierzig Meter sollten kein
- Problem sein!
-
- Little Net wird als Laufwerk installiert. Alle Dateizugriffe
- erfolgen über Laufwerk N. Little Net installiert sich daher
- zunächst einmal, ähnlich wie eine Ramfloppy oder Festplatte, über
- die HDV-Vektoren. In folgende Vektoren klinkt sich Little Net ein:
-
- hdv_bpb: ($472) Vektor zum Holen des Bios-Parameter-Blocks
- hdv_rw: ($476) Vektor zum Lesen / Schreiben eines Sektors
- hdv_mediach: ($47E) Vektor für Media Change Routine
-
- Will man nun über Laufwerk N auf ein Laufwerk des anderen
- Rechners zugreifen, so geschieht folgendes. Zuerst wird wahrschein-
- lich eine BPB-Anforderung durchgeführt. Dazu wird das Telegramm 1
- abgeschickt und als Antwort auf das Telegramm 2 gewartet. Erhält
- man das Telegramm 7 zurück, so ist etwas falsch gelaufen, und der
- BPB wird erneut angefordert. Sektor lesen und schreiben erfolgt
- nun analog über die Telegramme 5 und 6 bzw. 3 und 4. Media Change
- geschieht nicht über einen Telegrammaustausch, sondern wird durch
- Öffnen der Dialogbox abgehandelt (siehe auch Beschreibung Little
- Net).
-
- Wie erfolgt nun das Verschicken der Telegramme im einzelnen?
- Ausgangspunkt ist immer eine HDV-Routine. Hier wird das
- Anforderungstelegramm in einen Buffer gelegt, und die
- Sendeinterrupts freigegeben. Das Senden und Empfangen aller
- Telegramme erfolgt voll im Interrupt, damit beide ATARI möglichst
- wenig gebremst werden. Der andere ST empfängt nun also das
- Telegramm im Interrupt, legt es in einen Buffer und setzt ein
- Flag. Eine Telegrammauswertung im Interrupt ist ja leider nicht
- möglich, da man hier das Betriebssystem nicht aufrufen darf.
- Little Net klinkt sich deshalb in den BIOS-Trap ein und schaut bei
- jedem Bios-Aufruf nach, ob ein Telegramm angekommen ist. Wenn ja,
- wird das Telegramm beantwortet. Normalerweise macht jedes Programm
- einige 100 bis 1000 Bios-Aufrufe pro Sekunde, so daß eine prompte
- Antwort nicht ausbleibt. Sollte das Little Net aber einmal nicht
- funktionieren, so läuft wahrscheinlich ein Programm, das völlig am
- Betriebssystem vorbei programmiert ist, und keine BIOS-Aufrufe
- durchführt.
-
- Einen Sonderfall bildet noch das Telegramm 8 (Message senden).
- Dieses Telegramm wird direkt aus dem Accessorie heraus abgesendet,
- und es erwartet keine Antwort. Das Telegramm wird am anderen ST
- auch nicht durch einen Bios-Aufruf ausgewertet, sondern durch
- einen Timer-Event. Dies funktioniert natürlich nur in
- GEM-Programmen. Die Meldung erscheint also erst auf dem anderen
- ST, wenn dort eine GEM-Applikation läuft.
-
- Noch etwas zum allgemeinen Telegrammaufbau. Vor jedem Telegramm
- werden 2 Sync-, nach jedem Telegramm werden 3 Sync-Bytes 0
- geschickt. Dadurch ist gewährleistet, daß der andere ST sich auf
- die Kennung synchronisiert. Nun wird dreimal das Kennbyte des
- Telegramms verschickt. Dies geschieht dreimal um auch bei einem
- evt. Übertragungsfehler eindeutig den Telegrammtyp bestimmen zu
- können. Aus dem Telegrammtyp bestimmt die Empfangsroutine nämlich
- die Zahl der Zeichen die noch folgen. Am Ende eines jeden
- Telegramms steht noch eine 16 Bit Checksumme. Sollte diese nicht
- stimmen, so wird mit Telegramm 7 negativ geantwortet.
-
-
-
-
- Aufbau der Telegramme
- =====================
-
- 1.) BPB anfordern: 3 Byte Kennung (F0) -> Länge 3
- 1 Byte Laufwerk (0...)
- 2 Byte Checksumme
-
- 2.) BPB senden: 3 Byte Kennung (D2) -> Länge 25
- 1 Byte Laufwerk (0...)
- 1 Byte Status (0 = OK / FF = Fehler)
- 20 Byte BPB
- 1 Byte Dummy
- 2 Byte Checksumme
-
- 3.) Sektor schreiben: 3 Byte Kennung (B4) -> Länge 517
- 1 Byte Laufwerk (0...)
- 2 Byte Sektornummer (0...)
- 512 Byte Sektor
- 2 Byte Checksumme
-
- 4.) Schreibbestät.: 3 Byte Kennung (96) -> Länge 7
- 1 Byte Laufwerk (0...)
- 2 Byte Sektornummer (0...)
- 1 Byte Status (0=OK / neg.=Fehler)
- 1 Byte Dummy
- 2 Byte Checksumme
-
- 5.) Sektor anfordern: 3 Byte Kennung (78) -> Länge 5
- 1 Byte Laufwerk (0...)
- 2 Byte Sektornummer (0...)
- 2 Byte Checksumme
-
- 6.) Sektor lesen: 3 Byte Kennung (5A) -> Länge 519
- 1 Byte Laufwerk (0...)
- 2 Byte Sektornummer (0...)
- 1 Byte Status (0=OK / neg.=Fehler)
- 512 Byte Sektor
- 1 Byte Dummy
- 2 Byte Checksumme
-
- 7.) negative Bestät.: 3 Byte Kennung (1E) -> Länge 3
- 1 Byte Dummy
- 2 Byte Checksumme
-
- 8.) Message senden: 3 Byte Kennung (3c) -> Länge 63
- 30 Byte Zeile 1
- 30 Byte Zeile 2
- 1 Byte Dummy
- 2 Byte Checksumme
-
-
-
-